package com.kinghunt.misp.common.dto.projectx;

import com.kinghunt.misp.common.dto.reportx.ReportFullDTO;
import com.kinghunt.misp.common.dto.samplex.LimsSampleDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 项目信息
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProjectFullDTO implements Serializable {
    private static final long serialVersionUID = 4635266744499696196L;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 项目编号
     */
    private String projectNo;

    /**
     * 项目标题
     */
    private String projectTitle;

    /**
     * 项目类型
     */
    private Integer type;

    /**
     * 项目状态
     */
    private Integer status;

    /**
     * 检测标准
     */
    private String standard;

    /**
     * 指导书
     */
    private String guideBook;

    /**
     * 项目来源
     */
    private Integer source;

    /**
     * 项目描述
     */
    private String description;

    /**
     * 项目备注
     */
    private String remark;

    /**
     * 创建人ID
     */
    private Long creatorId;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 更新人ID
     */
    private Long updaterId;

    /**
     * 更新时间
     */
    private Date gmtUpdate;


    /***************************** 以下为关联信息 *****************************/
    /**
     * 样品信息
     */
    private List<LimsSampleDTO> samples;

    /**
     * 设备使用信息
     */
    // TODO: 设备使用信息
    private List<String> deviceUsages;

    // TODO: 耗材使用信息

    // TODO: 菌株使用信息

    /**
     * 任务信息
     */
    private List<ProjectTaskDTO> tasks;

    /**
     * 实验记录与报告
     */
    private List<ReportFullDTO> reports;

    /**
     * 附件
     */
    private List<ProjectAttachmentDTO> attachments;
}
